#pragma once

#include <string>
#include <vector>
#include <memory>

using namespace std;

typedef struct FpJsonNode FpJsonNode;

struct FpJsonItem
{

};

struct FpJsonStringItem : public FpJsonItem
{
	string _value;
};

struct FpJsonArrayItem : public FpJsonItem
{
	vector<string> _keys;
	vector<shared_ptr<FpJsonItem>> _values;
};

struct FpJsonJsonItem : public FpJsonItem
{
	string _key;
	shared_ptr<FpJsonItem> _value;
};

struct FpJsonNode
{
	string _name{};
	vector<shared_ptr<FpJsonItem>> _values{};
	
};

